home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  13.9 KB  |  467 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Terminals.h
  3.  
  4.      Contains:    Communications Toolbox Terminal tool Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1988-1993, 1995-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __TERMINALS__
  19. #define __TERMINALS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __DIALOGS__
  25. #include <Dialogs.h>
  26. #endif
  27. #ifndef __CTBUTILITIES__
  28. #include <CTBUtilities.h>
  29. #endif
  30. #ifndef __CONNECTIONS__
  31. #include <Connections.h>
  32. #endif
  33.  
  34.  
  35.  
  36. #if PRAGMA_ONCE
  37. #pragma once
  38. #endif
  39.  
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43.  
  44. #if PRAGMA_IMPORT
  45. #pragma import on
  46. #endif
  47.  
  48. #if PRAGMA_STRUCT_ALIGN
  49.     #pragma options align=mac68k
  50. #elif PRAGMA_STRUCT_PACKPUSH
  51.     #pragma pack(push, 2)
  52. #elif PRAGMA_STRUCT_PACK
  53.     #pragma pack(2)
  54. #endif
  55.  
  56.  
  57. enum {
  58.     curTMVersion                = 2                                /* current Terminal Manager version */
  59. };
  60.  
  61.  
  62. enum {
  63.     curTermEnvRecVers            = 0                                /* current Terminal Manager Environment Record version */
  64. };
  65.  
  66.  
  67. enum {
  68.                                                                 /* error codes    */
  69.     tmGenericError                = -1,
  70.     tmNoErr                        = 0,
  71.     tmNotSent                    = 1,
  72.     tmEnvironsChanged            = 2,
  73.     tmNotSupported                = 7,
  74.     tmNoTools                    = 8
  75. };
  76.  
  77. typedef OSErr                             TMErr;
  78.  
  79. enum {
  80.     tmInvisible                    = 1 << 0,
  81.     tmSaveBeforeClear            = 1 << 1,
  82.     tmNoMenus                    = 1 << 2,
  83.     tmAutoScroll                = 1 << 3,
  84.     tmConfigChanged                = 1 << 4
  85. };
  86.  
  87. typedef unsigned long                     TMFlags;
  88.  
  89. enum {
  90.     selTextNormal                = 1 << 0,
  91.     selTextBoxed                = 1 << 1,
  92.     selGraphicsMarquee            = 1 << 2,
  93.     selGraphicsLasso            = 1 << 3,
  94.     tmSearchNoDiacrit            = 1 << 8,
  95.     tmSearchNoCase                = 1 << 9
  96. };
  97.  
  98. typedef unsigned short                     TMSearchTypes;
  99. typedef short                             TMSelTypes;
  100.  
  101. enum {
  102.     cursorText                    = 1,
  103.     cursorGraphics                = 2
  104. };
  105.  
  106. typedef unsigned short                     TMCursorTypes;
  107.  
  108. enum {
  109.     tmTextTerminal                = 1 << 0,
  110.     tmGraphicsTerminal            = 1 << 1
  111. };
  112.  
  113. typedef unsigned short                     TMTermTypes;
  114. struct TermDataBlock {
  115.     TMTermTypes                     flags;
  116.     Handle                             theData;
  117.     Handle                             auxData;
  118.     long                             reserved;
  119. };
  120. typedef struct TermDataBlock TermDataBlock;
  121.  
  122. typedef TermDataBlock *                    TermDataBlockPtr;
  123. typedef TermDataBlockPtr *                TermDataBlockH;
  124. typedef TermDataBlockPtr *                TermDataBlockHandle;
  125. struct TermEnvironRec {
  126.     short                             version;
  127.     TMTermTypes                     termType;
  128.     short                             textRows;
  129.     short                             textCols;
  130.     Point                             cellSize;
  131.     Rect                             graphicSize;
  132.     Point                             slop;
  133.     Rect                             auxSpace;
  134. };
  135. typedef struct TermEnvironRec TermEnvironRec;
  136.  
  137. typedef TermEnvironRec *                TermEnvironPtr;
  138. union TMSelection {
  139.     Rect                             selRect;
  140.     RgnHandle                         selRgnHandle;
  141. };
  142. typedef union TMSelection TMSelection;
  143.  
  144. typedef struct TermRecord                 TermRecord;
  145. typedef TermRecord *                    TermPtr;
  146. typedef TermPtr *                        TermHandle;
  147. typedef CALLBACK_API( long , TerminalSendProcPtr )(Ptr thePtr, long theSize, long refCon, CMFlags flags);
  148. typedef CALLBACK_API( void , TerminalBreakProcPtr )(long duration, long refCon);
  149. typedef CALLBACK_API( long , TerminalCacheProcPtr )(long refCon, TermDataBlockPtr theTermData);
  150. typedef CALLBACK_API( void , TerminalSearchCallBackProcPtr )(TermHandle hTerm, short refNum, Rect *foundRect);
  151. typedef CALLBACK_API( Boolean , TerminalClikLoopProcPtr )(long refCon);
  152. typedef CALLBACK_API( CMErr , TerminalEnvironsProcPtr )(long refCon, ConnEnvironRec *theEnvirons);
  153. typedef CALLBACK_API( void , TerminalChooseIdleProcPtr )(void );
  154. typedef CALLBACK_API( long , TerminalToolDefProcPtr )(TermHandle hTerm, short msg, long p1, long p2, long p3);
  155. typedef STACK_UPP_TYPE(TerminalSendProcPtr)                     TerminalSendUPP;
  156. typedef STACK_UPP_TYPE(TerminalBreakProcPtr)                     TerminalBreakUPP;
  157. typedef STACK_UPP_TYPE(TerminalCacheProcPtr)                     TerminalCacheUPP;
  158. typedef STACK_UPP_TYPE(TerminalSearchCallBackProcPtr)             TerminalSearchCallBackUPP;
  159. typedef STACK_UPP_TYPE(TerminalClikLoopProcPtr)                 TerminalClikLoopUPP;
  160. typedef STACK_UPP_TYPE(TerminalEnvironsProcPtr)                 TerminalEnvironsUPP;
  161. typedef STACK_UPP_TYPE(TerminalChooseIdleProcPtr)                 TerminalChooseIdleUPP;
  162. typedef STACK_UPP_TYPE(TerminalToolDefProcPtr)                     TerminalToolDefUPP;
  163. /*    TMTermTypes     */
  164. struct TermRecord {
  165.     short                             procID;
  166.     TMFlags                         flags;
  167.     TMErr                             errCode;
  168.     long                             refCon;
  169.     long                             userData;
  170.     TerminalToolDefUPP                 defProc;
  171.     Ptr                             config;
  172.     Ptr                             oldConfig;
  173.     TerminalEnvironsUPP             environsProc;
  174.     long                             reserved1;
  175.     long                             reserved2;
  176.     Ptr                             tmPrivate;
  177.     TerminalSendUPP                 sendProc;
  178.     TerminalBreakUPP                 breakProc;
  179.     TerminalCacheUPP                 cacheProc;
  180.     TerminalClikLoopUPP             clikLoop;
  181.     WindowPtr                         owner;
  182.     Rect                             termRect;
  183.     Rect                             viewRect;
  184.     Rect                             visRect;
  185.     long                             lastIdle;
  186.     TMSelection                     selection;
  187.     TMSelTypes                         selType;
  188.     long                             mluField;
  189. };
  190.  
  191. enum { uppTerminalSendProcInfo = 0x00002FF0 };                     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
  192. enum { uppTerminalBreakProcInfo = 0x000003C0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes) */
  193. enum { uppTerminalCacheProcInfo = 0x000003F0 };                 /* pascal 4_bytes Func(4_bytes, 4_bytes) */
  194. enum { uppTerminalSearchCallBackProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  195. enum { uppTerminalClikLoopProcInfo = 0x000000D0 };                 /* pascal 1_byte Func(4_bytes) */
  196. enum { uppTerminalEnvironsProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  197. enum { uppTerminalChooseIdleProcInfo = 0x00000000 };             /* pascal no_return_value Func() */
  198. enum { uppTerminalToolDefProcInfo = 0x0000FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  199. #define NewTerminalSendProc(userRoutine)                         (TerminalSendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSendProcInfo, GetCurrentArchitecture())
  200. #define NewTerminalBreakProc(userRoutine)                         (TerminalBreakUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalBreakProcInfo, GetCurrentArchitecture())
  201. #define NewTerminalCacheProc(userRoutine)                         (TerminalCacheUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalCacheProcInfo, GetCurrentArchitecture())
  202. #define NewTerminalSearchCallBackProc(userRoutine)                 (TerminalSearchCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSearchCallBackProcInfo, GetCurrentArchitecture())
  203. #define NewTerminalClikLoopProc(userRoutine)                     (TerminalClikLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalClikLoopProcInfo, GetCurrentArchitecture())
  204. #define NewTerminalEnvironsProc(userRoutine)                     (TerminalEnvironsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalEnvironsProcInfo, GetCurrentArchitecture())
  205. #define NewTerminalChooseIdleProc(userRoutine)                     (TerminalChooseIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalChooseIdleProcInfo, GetCurrentArchitecture())
  206. #define NewTerminalToolDefProc(userRoutine)                     (TerminalToolDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalToolDefProcInfo, GetCurrentArchitecture())
  207. #define CallTerminalSendProc(userRoutine, thePtr, theSize, refCon, flags)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppTerminalSendProcInfo, (thePtr), (theSize), (refCon), (flags))
  208. #define CallTerminalBreakProc(userRoutine, duration, refCon)     CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalBreakProcInfo, (duration), (refCon))
  209. #define CallTerminalCacheProc(userRoutine, refCon, theTermData)  CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalCacheProcInfo, (refCon), (theTermData))
  210. #define CallTerminalSearchCallBackProc(userRoutine, hTerm, refNum, foundRect)  CALL_THREE_PARAMETER_UPP((userRoutine), uppTerminalSearchCallBackProcInfo, (hTerm), (refNum), (foundRect))
  211. #define CallTerminalClikLoopProc(userRoutine, refCon)             CALL_ONE_PARAMETER_UPP((userRoutine), uppTerminalClikLoopProcInfo, (refCon))
  212. #define CallTerminalEnvironsProc(userRoutine, refCon, theEnvirons)  CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalEnvironsProcInfo, (refCon), (theEnvirons))
  213. #define CallTerminalChooseIdleProc(userRoutine)                 CALL_ZERO_PARAMETER_UPP((userRoutine), uppTerminalChooseIdleProcInfo)
  214. #define CallTerminalToolDefProc(userRoutine, hTerm, msg, p1, p2, p3)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppTerminalToolDefProcInfo, (hTerm), (msg), (p1), (p2), (p3))
  215.  
  216. EXTERN_API( TMErr )
  217. InitTM                            (void);
  218.  
  219. EXTERN_API( Handle )
  220. TMGetVersion                    (TermHandle             hTerm);
  221.  
  222. EXTERN_API( short )
  223. TMGetTMVersion                    (void);
  224.  
  225. EXTERN_API( TermHandle )
  226. TMNew                            (const Rect *            termRect,
  227.                                  const Rect *            viewRect,
  228.                                  TMFlags                 flags,
  229.                                  short                     procID,
  230.                                  WindowPtr                 owner,
  231.                                  TerminalSendUPP         sendProc,
  232.                                  TerminalCacheUPP         cacheProc,
  233.                                  TerminalBreakUPP         breakProc,
  234.                                  TerminalClikLoopUPP     clikLoop,
  235.                                  TerminalEnvironsUPP     environsProc,
  236.                                  long                     refCon,
  237.                                  long                     userData);
  238.  
  239. EXTERN_API( void )
  240. TMDispose                        (TermHandle             hTerm);
  241.  
  242. EXTERN_API( void )
  243. TMKey                            (TermHandle             hTerm,
  244.                                  const EventRecord *    theEvent);
  245.  
  246. EXTERN_API( void )
  247. TMUpdate                        (TermHandle             hTerm,
  248.                                  RgnHandle                 visRgn);
  249.  
  250. EXTERN_API( void )
  251. TMPaint                            (TermHandle             hTerm,
  252.                                  const TermDataBlock *    theTermData,
  253.                                  const Rect *            theRect);
  254.  
  255. EXTERN_API( void )
  256. TMActivate                        (TermHandle             hTerm,
  257.                                  Boolean                 activate);
  258.  
  259. EXTERN_API( void )
  260. TMResume                        (TermHandle             hTerm,
  261.                                  Boolean                 resume);
  262.  
  263. EXTERN_API( void )
  264. TMClick                            (TermHandle             hTerm,
  265.                                  const EventRecord *    theEvent);
  266.  
  267. EXTERN_API( void )
  268. TMIdle                            (TermHandle             hTerm);
  269.  
  270. EXTERN_API( long )
  271. TMStream                        (TermHandle             hTerm,
  272.                                  void *                    theBuffer,
  273.                                  long                     theLength,
  274.                                  CMFlags                 flags);
  275.  
  276. EXTERN_API( Boolean )
  277. TMMenu                            (TermHandle             hTerm,
  278.                                  short                     menuID,
  279.                                  short                     item);
  280.  
  281. EXTERN_API( void )
  282. TMReset                            (TermHandle             hTerm);
  283.  
  284. EXTERN_API( void )
  285. TMClear                            (TermHandle             hTerm);
  286.  
  287. EXTERN_API( void )
  288. TMResize                        (TermHandle             hTerm,
  289.                                  const Rect *            newViewRect);
  290.  
  291. EXTERN_API( long )
  292. TMGetSelect                        (TermHandle             hTerm,
  293.                                  Handle                 theData,
  294.                                  ResType *                theType);
  295.  
  296. EXTERN_API( void )
  297. TMGetLine                        (TermHandle             hTerm,
  298.                                  short                     lineNo,
  299.                                  TermDataBlock *        theTermData);
  300.  
  301. EXTERN_API( void )
  302. TMSetSelection                    (TermHandle             hTerm,
  303.                                  const TMSelection *    theSelection,
  304.                                  TMSelTypes             selType);
  305.  
  306. EXTERN_API( void )
  307. TMScroll                        (TermHandle             hTerm,
  308.                                  short                     dh,
  309.                                  short                     dv);
  310.  
  311. EXTERN_API( Boolean )
  312. TMValidate                        (TermHandle             hTerm);
  313.  
  314. EXTERN_API( void )
  315. TMDefault                        (Ptr *                    theConfig,
  316.                                  short                     procID,
  317.                                  Boolean                 allocate);
  318.  
  319. EXTERN_API( Handle )
  320. TMSetupPreflight                (short                     procID,
  321.                                  long *                    magicCookie);
  322.  
  323. EXTERN_API( void )
  324. TMSetupSetup                    (short                     procID,
  325.                                  const void *            theConfig,
  326.                                  short                     count,
  327.                                  DialogPtr                 theDialog,
  328.                                  long *                    magicCookie);
  329.  
  330. EXTERN_API( Boolean )
  331. TMSetupFilter                    (short                     procID,
  332.                                  const void *            theConfig,
  333.                                  short                     count,
  334.                                  DialogPtr                 theDialog,
  335.                                  EventRecord *            theEvent,
  336.                                  short *                theItem,
  337.                                  long *                    magicCookie);
  338.  
  339. EXTERN_API( void )
  340. TMSetupItem                        (short                     procID,
  341.                                  const void *            theConfig,
  342.                                  short                     count,
  343.                                  DialogPtr                 theDialog,
  344.                                  short *                theItem,
  345.                                  long *                    magicCookie);
  346.  
  347. EXTERN_API( void )
  348. TMSetupXCleanup                    (short                     procID,
  349.                                  const void *            theConfig,
  350.                                  short                     count,
  351.                                  DialogPtr                 theDialog,
  352.                                  Boolean                 OKed,
  353.                                  long *                    magicCookie);
  354.  
  355. EXTERN_API( void )
  356. TMSetupPostflight                (short                     procID);
  357.  
  358. EXTERN_API( Ptr )
  359. TMGetConfig                        (TermHandle             hTerm);
  360.  
  361. EXTERN_API( short )
  362. TMSetConfig                        (TermHandle             hTerm,
  363.                                  const void *            thePtr);
  364.  
  365. EXTERN_API( OSErr )
  366. TMIntlToEnglish                    (TermHandle             hTerm,
  367.                                  const void *            inputPtr,
  368.                                  Ptr *                    outputPtr,
  369.                                  short                     language);
  370.  
  371. EXTERN_API( OSErr )
  372. TMEnglishToIntl                    (TermHandle             hTerm,
  373.                                  const void *            inputPtr,
  374.                                  Ptr *                    outputPtr,
  375.                                  short                     language);
  376.  
  377. EXTERN_API( void )
  378. TMGetToolName                    (short                     id,
  379.                                  Str255                 name);
  380.  
  381. EXTERN_API( short )
  382. TMGetProcID                        (ConstStr255Param         name);
  383.  
  384. EXTERN_API( void )
  385. TMSetRefCon                        (TermHandle             hTerm,
  386.                                  long                     refCon);
  387.  
  388. EXTERN_API( long )
  389. TMGetRefCon                        (TermHandle             hTerm);
  390.  
  391. EXTERN_API( void )
  392. TMSetUserData                    (TermHandle             hTerm,
  393.                                  long                     userData);
  394.  
  395. EXTERN_API( long )
  396. TMGetUserData                    (TermHandle             hTerm);
  397.  
  398. EXTERN_API( short )
  399. TMAddSearch                        (TermHandle             hTerm,
  400.                                  ConstStr255Param         theString,
  401.                                  const Rect *            where,
  402.                                  TMSearchTypes             searchType,
  403.                                  TerminalSearchCallBackUPP  callBack);
  404.  
  405. EXTERN_API( void )
  406. TMRemoveSearch                    (TermHandle             hTerm,
  407.                                  short                     refnum);
  408.  
  409. EXTERN_API( void )
  410. TMClearSearch                    (TermHandle             hTerm);
  411.  
  412. EXTERN_API( Point )
  413. TMGetCursor                        (TermHandle             hTerm,
  414.                                  TMCursorTypes             cursType);
  415.  
  416. EXTERN_API( TMErr )
  417. TMGetTermEnvirons                (TermHandle             hTerm,
  418.                                  TermEnvironRec *        theEnvirons);
  419.  
  420. EXTERN_API( short )
  421. TMChoose                        (TermHandle *            hTerm,
  422.                                  Point                     where,
  423.                                  TerminalChooseIdleUPP     idleProc);
  424.  
  425. EXTERN_API( void )
  426. TMEvent                            (TermHandle             hTerm,
  427.                                  const EventRecord *    theEvent);
  428.  
  429. EXTERN_API( Boolean )
  430. TMDoTermKey                        (TermHandle             hTerm,
  431.                                  ConstStr255Param         theKey);
  432.  
  433. EXTERN_API( short )
  434. TMCountTermKeys                    (TermHandle             hTerm);
  435.  
  436. EXTERN_API( void )
  437. TMGetIndTermKey                    (TermHandle             hTerm,
  438.                                  short                     id,
  439.                                  Str255                 theKey);
  440.  
  441. EXTERN_API( void )
  442. TMGetErrorString                (TermHandle             hTerm,
  443.                                  short                     id,
  444.                                  Str255                 errMsg);
  445.  
  446.  
  447. #if PRAGMA_STRUCT_ALIGN
  448.     #pragma options align=reset
  449. #elif PRAGMA_STRUCT_PACKPUSH
  450.     #pragma pack(pop)
  451. #elif PRAGMA_STRUCT_PACK
  452.     #pragma pack()
  453. #endif
  454.  
  455. #ifdef PRAGMA_IMPORT_OFF
  456. #pragma import off
  457. #elif PRAGMA_IMPORT
  458. #pragma import reset
  459. #endif
  460.  
  461. #ifdef __cplusplus
  462. }
  463. #endif
  464.  
  465. #endif /* __TERMINALS__ */
  466.  
  467.